package day240110

import "fmt"

// 常量生成器 iota
func Main2() {
	const (
		a = iota //iota 默认0开始 ，如果要第8个开始 就 +8
		//a = iota+8
		b
		c
	)
	//fmt.Println(a, b, c) //0 1 2

	const (
		e = 10   //iota = 0
		f        //iota = 1
		g = 22   //iota = 2
		h = iota //iota = 3	不管iota在第几个，出现iota，就会从0开始
		i        //iota = 4 ,这里h 已经赋值，所以跟h
	)
	const (
		x = 1 //如果后面常量没赋值，第一个常量必须赋值，后面没赋值的值默认和第一个一样
		y
		z //必须第一个赋值
	)
	fmt.Println("测试：", e, f, g, h, i, "xyz:", x, y, z)

}

// 常量
func Main1() {
	const a string = "abc"
	const b = 2
	const c = 3.5

	fmt.Printf(" %T %T \n", b, c) // int float64

	//注意没规定类型的，常量可以数学运算
	fmt.Println(b + c) //5.5
	//但是规定了就不行。如果 const b int = 2 , 报错

	//i1 := 1
	//i2 := 1.5
	//fmt.Println(i1+i2)	//非常量，而且没定类型的也报错

	const d = 1 + 3
	//i := 2
	//const e = i + 3 //报错，常量运算不能出现 变量

	//多个常量推荐这样赋值
	const (
		f = 1 //如果后面常量没赋值，第一个常量必须赋值，后面没赋值的值默认和第一个一样
		g
		h
	)
	fmt.Println(f, g, h) //1 1 1

}
